/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package test;

import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

/**
 *
 * @author bartek
 */
public class Dane_user {

    private int id;
    private String imie;
    private String nazwisko;
    private String adres;
    private int kodpocztowy;
    private String miasto;
    private String dataur;
    private String email;
    private long numer_tel;
    private long pesel;
    private String haslo;


    public long dodajDane() throws SQLException {
        Connection conn = Polaczenie.getConnection();
        System.out.println("Zaraz zostaniesz poproszony o podanie danych użytkownika.");
        System.out.println("Postępuj według wskazówek w nawiasach będziesz miał zaznaczony,\n jaki format danych trzeba wpisać .");
        System.out.println("Po wprowadzeniu określonych danych naciśnij przycisk klawiatury \"enter\"");
        try {
            Scanner in = new Scanner(System.in);

            System.out.println("Wprowadź imie:");
            imie = in.nextLine();
            System.out.println("Wprowadź nazwisko:");
            nazwisko=in.nextLine();
            System.out.println("Wprowadź adres(ulica ,nr. domu i nr.mieszkania:");
            adres=in.nextLine();
            System.out.println("Wprowadź kod pocztowy(tylko liczby bez \"-\"):");
            kodpocztowy=Integer.parseInt(in.nextLine());
            System.out.println("Wprowadź miasto zamieszkania:");
            miasto = in.nextLine();
            System.out.println("Wprowadź date urodzenia :");
            dataur=in.nextLine();
            System.out.println("Wprowadź e-mail(jeśli nie posiada wprowadź \"brak\") :");
            email=in.next();
            System.out.println("Wprowadź numer telefonu(jeśli nie posiada wprowadź \"0\") :");
            numer_tel=in.nextInt();
            System.out.println("Wprowadź pesel :");
            pesel=in.nextLong();
            System.out.println("Wprowadź hasło (maksymalnie 20 znaków i bez spacji :");
            haslo=in.next();
            Statement stat = (Statement) conn.createStatement();
            stat.execute("INSERT INTO dane_user(imie,nazwisko,adres,data_urodzenia,kod_pocztowy,miasto,email,telefon,pesel,haslo) "
                    + "VALUES('"+imie+"','"+nazwisko+"','"+adres+"','"+dataur+"',"+kodpocztowy+",'"+miasto+"','"+email+"',"+numer_tel+","+pesel+",'"+haslo+"');");

        }catch(SQLException e){
           System.out.println("Wprowadzony błędny format danych ");
        }catch(Exception e){
            System.out.println("Wprowadzony błędny format danych ");
        } finally {
            conn.close();
        }
        return pesel;
    }

    public void wyswietlDane(int id) throws SQLException, IOException {
        this.id = id;
        Connection conn = Polaczenie.getConnection();
        try {
            Statement stat = (Statement) conn.createStatement();

            ResultSet rs = stat.executeQuery("SELECT * FROM dane_user WHERE id=" + this.id + ";");
            rs.next();
            imie = rs.getString(2);
            nazwisko = rs.getString(3);
            adres = rs.getString(4);
            kodpocztowy = rs.getInt(6);
            miasto = rs.getString(7);
            dataur = rs.getString(5);
            email = rs.getString(8);
            numer_tel = rs.getLong(9);

            System.out.println("Imie i nazwisko:" + imie + " " + nazwisko);
            System.out.println("Adres:" + adres);
            System.out.println("      " + kodpocztowy + " " + miasto);
            System.out.println("e-mail:" + email + " telefon:" + numer_tel);
            System.out.println("------------------------------------");
            rs.close();
        } finally {
            conn.close();
        }
    }

    public void aktualizujAdres(int id) throws SQLException, IOException {
        Scanner in = new Scanner(System.in);
        System.out.println("Zaraz będziesz poproszony o podanie nowego adresu\n musisz podać następnie:\n adres, kod pocztowy(bez -) oraz"
                + "miasto");
        Connection conn = Polaczenie.getConnection();
        try {

            Statement stat = (Statement) conn.createStatement();
            System.out.println("Podaj adres i wciśnij klawisz \"ENTER\"");
            adres = in.nextLine();
            System.out.println("Podaj kod pocztowy(TYLKO LICZBY) i miasto !!!!!!!!odziel dane spacją!!!! a następnie wciśnij klawisz \"ENTER\"");
            kodpocztowy = in.nextInt();
            miasto = in.next();


            stat.execute("UPDATE dane_user SET adres='" + adres + "', KOD_POCZTOWY=" + kodpocztowy + " , MIASTO='" + miasto + "' WHERE id=" + id + ";");


        }catch(SQLException e){
            System.out.println("Wprowadzono błędne dane");
        }finally{
            
            conn.close();
        }

    }

    public void zmienHaslo(int id) throws SQLException, IOException{
      Connection conn = (Connection) Polaczenie.getConnection();

        try {
            Scanner in = new Scanner(System.in);
            Statement stat = (Statement) conn.createStatement();
            System.out.println("Wprowadź nowe hasło(maksymalnie 20 znaków) i naciśnij przycisk \"ENTER\"");
            haslo=in.next();



            stat.execute("UPDATE DANE_USER SET haslo='"+haslo+"' WHERE ID="+id+";");


        }catch(SQLException e){
           System.out.println("Wprowadzono błedne dane");

        } finally {
            
            conn.close();
        }}
    public String imie(int id) throws SQLException {
        this.id = id;
        Connection conn = Polaczenie.getConnection();
        try {
            Statement stat = (Statement) conn.createStatement();

            ResultSet rs = stat.executeQuery("SELECT * FROM dane_user WHERE id=" + this.id + ";");
            rs.next();
            imie = rs.getString(2);
            rs.close();
        } finally {
            conn.close();
        }
        return imie;
    }

    public String nazwisko(int id) throws SQLException {
        this.id = id;
        Connection conn = Polaczenie.getConnection();
        try {
            Statement stat = (Statement) conn.createStatement();

            ResultSet rs = stat.executeQuery("SELECT * FROM dane_user WHERE id=" + this.id + ";");
            rs.next();
            nazwisko = rs.getString(3);
            rs.close();
        } finally {
            conn.close();
        }
        return nazwisko;
    }
}
